package gbm

import (
	"container/list"
	"github.com/spf13/cast"
)

// ListToString 将链表中的元素转换为字符串。
// 参数:
//
//	ls: list.List类型的链表，包含要转换的元素。
//	seq: 字符串类型的拼接符，用于连接链表中的元素，默认可以用空格、下划线、@等，具体请根据实际需求设置。
//
// 返回值:
//
//	一个字符串，包含所有链表元素，元素之间用seq参数指定的字符拼接。
func ListToString(ls list.List, seq string) string {
	// 初始化结果字符串为空。
	var result string
	// 初始化索引变量，用于跟踪当前元素的位置。
	index := 1
	// 遍历链表中的每个元素。
	for i := ls.Front(); i != nil; i = i.Next() {
		// 如果是第一个元素，直接将其转换为字符串并赋值给result。
		if index == 1 {
			result = cast.ToString(i.Value)
		} else {
			// 如果不是第一个元素，将当前元素转换为字符串，并用seq拼接到result中。
			result = result + seq + cast.ToString(i.Value)
		}
		// 索引加1，表示下一个元素。
		index += 1
	}
	// 返回拼接后的字符串。
	return result
}
